﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using AnalisisDeRiesgos.Dal;

namespace AnalisisDeRiesgos.Models.Risk
{
    public class RegisterRiskModel
    {
        [DisplayName("Codigo del riesgo *")]
        [Required(ErrorMessage = "El Codigo del riesgo es requerido")]
        [StringLength(10, ErrorMessage = "El Codigo del riesgo no puede sobrepasar los 10 valores")]
        [RegularExpression(@"^[a-zA-Z0-9 \(\)ñÑ\-.,áéíóúÁÉÍÓÚ]+$", ErrorMessage = "El codigo del riesgo solo puede tener letras y numeros sin espacios")]
        public string RiskCode { get; set; }

        [DisplayName("Descripcion del riesgo *")]
        [Required(ErrorMessage = "La descripcion del riesgo requerida")]
        [StringLength(50, ErrorMessage = "La descripcion del riesgo no puede sobrepasar los 50 valores")]
        [RegularExpression(@"^[a-zA-Z0-9 \(\)ñÑ\-.,áéíóúÁÉÍÓÚ]+$", ErrorMessage = "La descripcion del riesgo solo puede tener letras y numeros ")]
        public string Name { get; set; }

        riskanalysisEntities entities = new riskanalysisEntities();

        public void Save()
        {
            var query = from r in entities.risks
                        where r.enabled && r.riskCode.ToLower().Equals(RiskCode.ToLower())
                        select r;

            if (query.Count() >= 1)
                throw new RegisterRiskException("Ya existe un riesgo con ese codigo");
            entities.AddTorisks(
                new risk
                {
                    riskCode = RiskCode,
                    name = Name,
                    enabled = true
                });
            entities.SaveChanges();
        }
    }
}